iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
IT 管理

API Gateway:微服務世界的守護者系列 第 16

Day 16 - APISIX Plugin - api-breaker

  • 分享至 

  • xImage
  •  

斷路器 (Circuit Breaker) 在 API Gateway 中扮演著非常重要的角色,它就像是一個保護裝置,當後端服務出現故障或延遲過久時,斷路器會自動切斷對該服務的請求,防止系統崩潰,並提升系統的穩定性。

斷路器在 API Gateway 的應用

斷路器 (Circuit Breaker) 在 API Gateway 中扮演著非常重要的角色,它就像是一個保護裝置,當後端服務出現故障或延遲過久時,斷路器會自動切斷對該服務的請求,防止系統崩潰,並提升系統的穩定性。

為什麼需要斷路器?

保護後端服務: 當後端服務過載或發生故障時,斷路器會防止大量的請求湧入,減輕後端服務的壓力,給予其恢復的機會。
提升系統穩定性: 透過快速切斷故障服務,避免故障擴散到整個系統,提高系統的整體穩定性。
改善用戶體驗: 當斷路器開啟時,系統可以快速返回一個友善的錯誤訊息給用戶,而不是讓用戶長時間等待。
斷路器的工作原理
閉合狀態: 初始狀態,請求直接傳送到後端服務。
開啟狀態: 當失敗請求達到一定閾值,斷路器會開啟,所有請求都會被直接拒絕。
半開狀態: 過一段時間後,斷路器會進入半開狀態,允許少量請求通過,如果這些請求成功,則斷路器恢復到閉合狀態;如果失敗,則繼續保持開啟狀態。

在 API Gateway 中使用斷路器的優勢

提高系統可用性: 避免因單一服務故障而導致整個系統崩潰。
降低系統負載: 減少對故障服務的請求,降低系統負載。
快速故障恢復: 透過半開狀態機制,可以快速檢測服務是否恢復正常。

APISIX 中的斷路器

APISIX 作為一款高性能的 API Gateway,內建了斷路器功能。您可以通過配置 api-breaker 插件,為不同的路由設置不同的斷路器規則。

常見的配置參數:

閾值: 在指定的時間窗口內,如果失敗請求數超過這個閾值,斷路器就會觸發。
時間窗口: 時間窗口,單位為秒。
響應超時: 請求超时時間,單位為毫秒。

以 uri:products 來舉例:

routes:
- uri: /products
  plugins:
    - name: api-breaker
      conf:
        threshold: 5
        time_window: 60
        response_timeout: 5000

總結

斷路器是 API Gateway 中不可或缺的一環,它能有效地保護後端服務,提高系統的穩定性。APISIX 作為一款功能強大的 API Gateway,提供了方便的斷路器配置方式,幫助開發者輕鬆實現系統的容錯能力。

參考


上一篇
Day 15 - Kubernetes FQDN
下一篇
Day 17 - AlertManager
系列文
API Gateway:微服務世界的守護者24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言